This invention relates generally to data packet communication systems and methods. It should be emphasized that while the inventions herein are described with respect to, and are particularly adapted to use with, television signal communication systems, they are not limited thereto, the inventions being equally applicable to any communications system of the data packet type. The inventions will be described in connection with a cable-connected television transmission system wherein the signals from a head-end are supplied to a plurality of subscriber terminals, connected to the head-end by a cable for controlling individual subscriber terminal decoder units. The inventive system will find particular use in a subscription television signal scrambling system including a data packet communication arrangement wherein encrypted binary data is transmitted during selected horizontal lines of the television signal. As taught in the above-mentioned patent and copending applications, television scrambling may conveniently be accomplished by suppression of the horizontal blanking signals and phase reversal of the video carrier during the blanking periods. Data may be communicated by pulse width modulation of the horizontal blanking intervals. Suppression of the horizontal sync signals scrambles the video signal such that it is rendered unviewable when received by a conventional television receiver. In order to unscramble the video display, each subscriber terminal is provided with a decoder that is operable for unscrambling the television signals and for coupling the unscrambled signals to a television receiver for viewing. Since security is a prime consideration in the design of any such system, the unscrambling technique needs to be sufficiently complex to deter would-be pirates while being capable of providing reliable decoding by authorized system subscriber terminals.
In the data packet system of the invention, four packets of 64 bits each are sequentially sent in 256 horizontal lines of the video display. The first packet is termed a "global" packet and is receivable by all subscriber terminals, whereas each of the subsequent three packets is individually addressed to a subscriber terminal and is therefore receivable only by subscriber terminals having the correct address. The global packet is used for conveying program identification "tags" for special programs, such as movie channels, and for controlling subscriber terminal decoders for pay-per-view programming. The addressed packets convey subscriber terminal authorization data and any other data that is unique to a particular subscriber terminal. Each subscriber terminal decoder includes a microprocessor and a non-volatile memory for storing an individual permanent subscriber terminal address and address key and a plurality of session keys, the purpose of which will be discussed below.
Upon receipt of a television signal, each subscriber terminal "reads" the accompanying program identification code and checks that code against its authorization memory to see if the terminal is authorized. If the terminal is authorized, the television signal is unscrambled. If the terminal is not authorized, the television signal is left unscrambled. It will be appreciated that a subscriber terminal authorization may be changed by the cable head-end by means of the addressed data packets. The terminal authorization codes are only changed when there is a change in service level, or a default in payment, and consequently, there is only a limited amount of communication that actually occurs between the head-end and any individual subscriber terminal. Thus the overwhelming majority of addressed packets are intended for the many other subscriber terminals. It is therefore an important attribute of the present inventive system, that the addressing structure is such that the microprocessor in the subscriber terminal need not spend valuable processing time on messages that are intended for other subscriber terminals. As will become apparent, the individual subscriber terminal microprocessor ignores data packets, in terms of processing, that are not intended for it. This significantly reduces the microprocessor processing time and makes for a much more efficient system.
In another aspect of the invention, the functions of message or data encryption, error protection of transmitted data and address recognition are uniquely intertwined to facilitate processing efficiency. For example, in the preferred embodiment a cyclic redundant code arrangement (CRC) is utilized for simultaneous data encryption, error protection and address recognition. This reduces processing time of the data packets since a non zero remainder in the CRC code, for any reason, results in the packet not being processed. In a still further aspect of the invention, the number of subscriber terminal addresses that may be utilized in the system, without subscriber terminal confusion, is greatly expanded with the use of address encryption keys. This is accomplished with only a slight degradation in error protection.
An important aspect of the invention is the utilization of a multibit shift register, or its equivalent software implementation, as a data encryption and error protection (DEEP) feature. The DEEP feature is preferably implemented in software at the head-end and in hardware at the subscriber terminals. The DEEP feature, as will be seen, simultaneously encrypts and error protects the data. In the head-end or encoder, the DEEP software simulates a plurality of feed-forward and feed-back taps on a multibit shift register by means of a look-up table. The DEEP feature in each subscriber terminal comprises a hardware shift register complementarily connected, that is, with feed-forward and fed-back taps interchanged as compared with those in the encoder. Further, to provide dynamic encryption, encryption and decryption "seeds" or binary presets are loaded into the DEEP software and hardware at the encoder and subscriber terminals, respectively. As will be seen, these presets comprise the session keys and address keys mentioned above. The result is a simple, secure, readily implemented data packet transmission system.